<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			/*
			原型prototype
			
			我们所创建的每一个函数，解析器都会向函数中添加一个属性prototype
			每一个函数都有自己的prototype，这个属性对应的对象就是所谓的原型对象
			如果函数作为普通函数调用prototype没作用
			当作为构造函数调用时，所创建的对象中都会有一个隐藏的属性
				指向该函数的原型对象
				我们可以通过__proto__来访问该属性
				原型对象就相当于一公共区域，所有同一个类的实例都可以访问到这个原型对象
				我们可以将共有内容设置在这个原型对象（就是公共区域）;
			当我们访问对象的一个属性和方法时，它会先在对象的自身中寻找，有就使用
			如果没有则会去原型对象中寻找
			以后我们创建构造函数时，可以将这些对象的共有属性和方法，统一添加到构造函数的原型对象中，
			这样就不用分别为每一个对象添加，也不会影响到全局作用域，就可以使每个对象都具有这些属性和方法了
			*/
		   
			
			function Person(){
				
			}
			//向Person的原型添加属性a
			Person.prototype.a = 123;
			
			var mc = new Person();
			
			//console.log(mc.__proto__ == Person.prototype);
			//console.log(Person.prototype);
			console.log(mc.a);
		</script>
	</body>
</html>
